home *** CD-ROM | disk | FTP | other *** search
Text File | 1995-01-06 | 29.5 KB | 1,970 lines |
- BumpMap:
-
- tst.b smoothbumps
- bne SmoothMap
-
- move.w ConstCol,d0
- move.w (a1,d0.w*2),a2
- move.w #0,a2
-
- tst.w above
- beq bumpthefloor
-
- move.l #24*128,d0
- divs dst,d0
- subq #1,d0
- blt.s ordinary
- beq.s OneBelow
- subq.w #2,d0
- blt TwoBelow
- beq ThreeBelow
- subq.w #2,d0
- blt FourBelow
- beq FiveBelow
- subq.w #2,d0
- blt SixBelow
- beq SevenBelow
- subq.w #2,d0
- blt EightBelow
- beq NineBelow
- subq #2,d0
- blt TenBelow
- beq ElevenBelow
- bra TwelveBelow
- rts
-
- *****************************
-
- OneBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*4(a3)
- moveq #0,d0
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
-
- *****************************
-
- TwoBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*8(a3)
- moveq #0,d0
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- ThreeBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- FourBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- FiveBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- SixBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforehigh
- move.w (a1,d0.w*2),104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpBeforehigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- SevenBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- EightBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*32(a3)
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*32(a3)
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
-
- *****************************
-
- NineBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*36(a3)
- move.w a2,104*32(a3)
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*36(a3)
- move.w a2,104*32(a3)
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- TenBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*40(a3)
- move.w a2,104*36(a3)
- move.w a2,104*32(a3)
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- ; move.w a2,104*8(a3)
- ; move.w a2,104*4(a3)
- moveq #0,d0
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*40(a3)
- move.w a2,104*36(a3)
- move.w a2,104*32(a3)
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- ; move.w a2,104*8(a3)
- ; move.w a2,104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- ElevenBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*44(a3)
- move.w a2,104*40(a3)
- move.w a2,104*36(a3)
- move.w a2,104*32(a3)
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- ; move.w a2,104*12(a3)
- ; move.w a2,104*8(a3)
- ; move.w a2,104*4(a3)
- moveq #0,d0
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*44(a3)
- move.w a2,104*40(a3)
- move.w a2,104*36(a3)
- move.w a2,104*32(a3)
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- ; move.w a2,104*12(a3)
- ; move.w a2,104*8(a3)
- ; move.w a2,104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- TwelveBelow:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*48(a3)
- move.w a2,104*44(a3)
- move.w a2,104*40(a3)
- move.w a2,104*36(a3)
- move.w a2,104*32(a3)
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- ; move.w a2,104*16(a3)
- ; move.w a2,104*12(a3)
- ; move.w a2,104*8(a3)
- ; move.w a2,104*4(a3)
- moveq #0,d0
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*48(a3)
- move.w a2,104*44(a3)
- move.w a2,104*40(a3)
- move.w a2,104*36(a3)
- move.w a2,104*32(a3)
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- ; move.w a2,104*16(a3)
- ; move.w a2,104*12(a3)
- ; move.w a2,104*8(a3)
- ; move.w a2,104*4(a3)
- moveq #0,d0
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
-
-
- bumpthefloor:
- move.l #14*128,d0
- divs dst,d0
- subq.w #1,d0
- blt ordinary
- beq.s OneAbove
- subq.w #2,d0
- blt TwoAbove
- beq ThreeAbove
- subq.w #2,d0
- blt FourAbove
- beq FiveAbove
- subq.w #2,d0
- blt SixAbove
- beq SevenAbove
-
- bra EightAbove
-
- moveq #0,d0
- rts
-
- *****************************
-
- OneAbove:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),-104*4(a3)
-
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),-104*4(a3)
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
-
- *****************************
-
- TwoAbove:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- ThreeAbove:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- FourAbove:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),-104*16(a3)
- move.w a2,-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),-104*16(a3)
- move.w a2,-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- FiveAbove:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),-104*20(a3)
- move.w a2,-104*16(a3)
- move.w a2,-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),-104*20(a3)
- move.w a2,-104*16(a3)
- move.w a2,-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
-
- *****************************
-
- SixAbove:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),-104*24(a3)
- move.w a2,-104*20(a3)
- move.w a2,-104*16(a3)
- move.w a2,-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),-104*24(a3)
- move.w a2,-104*20(a3)
- move.w a2,-104*16(a3)
- move.w a2,-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- SevenAbove:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),-104*28(a3)
- move.w a2,-104*24(a3)
- move.w a2,-104*20(a3)
- move.w a2,-104*16(a3)
- move.w a2,-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),-104*28(a3)
- move.w a2,-104*24(a3)
- move.w a2,-104*20(a3)
- move.w a2,-104*16(a3)
- move.w a2,-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- EightAbove:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),-104*32(a3)
- move.w a2,-104*28(a3)
- move.w a2,-104*24(a3)
- move.w a2,-104*20(a3)
- move.w a2,-104*16(a3)
- move.w a2,-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),-104*32(a3)
- move.w a2,-104*28(a3)
- move.w a2,-104*24(a3)
- move.w a2,-104*20(a3)
- move.w a2,-104*16(a3)
- move.w a2,-104*12(a3)
- move.w a2,-104*8(a3)
- move.w a2,-104*4(a3)
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
-
- SmoothMap:
-
- move.w #0,a2
-
- tst.w above
- beq smooththefloor
-
- move.l #14*128,d0
- divs dst,d0
- subq #1,d0
- blt ordinary
- beq.s OneBelowS
- subq.w #2,d0
- blt TwoBelowS
- beq ThreeBelowS
- subq.w #2,d0
- blt FourBelowS
- beq FiveBelowS
- subq.w #2,d0
- blt SixBelowS
- beq SevenBelowS
- ; bra EightBelowS
- rts
-
- *****************************
-
- OneBelowS:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),104*4(a3)
-
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),104*4(a3)
-
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
-
- CACHE_FREEZE_ON d2
- rts
-
- *****************************
-
- TwoBelowS:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
-
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BBHH
- move.w a2,104*8(a3)
-
- .BBHH
- move.w a2,104*4(a3)
-
- .BumpBeforeHigh:
- .BBbumped
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BAHH
- move.w a2,104*8(a3)
-
- .BAHH
- move.w a2,104*4(a3)
- .BumpAcrossHigh:
- .BAbumped
- move.w (a1,d0.w*2),(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
- *****************************
-
- ThreeBelowS:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BBL
-
- move.w a2,104*12(a3)
-
- .BBL:
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- bra.s .BBB
-
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BBB
- move.w a2,104*4(a3)
-
- .BBB:
- move.w a2,(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
-
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BAL
-
- move.w a2,104*12(a3)
-
- .BAL:
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- bra.s .BAB
-
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BAB
- move.w a2,104*4(a3)
-
- .BAB:
- move.w a2,(a3)
-
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
-
- *****************************
-
- FourBelowS:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BBL
-
- move.w a2,104*16(a3)
-
- .BBL:
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- bra.s .BBB
-
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BBB
- move.w a2,104*4(a3)
-
- .BBB:
- move.w a2,(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
-
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BAL
-
- move.w a2,104*16(a3)
-
- .BAL:
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- bra.s .BAB
-
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BAB
- move.w a2,104*4(a3)
-
- .BAB:
- move.w a2,(a3)
-
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
-
- *****************************
-
- FiveBelowS:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BBL
-
- move.w a2,104*20(a3)
-
- .BBL:
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- bra.s .BBB
-
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BBB
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
-
- .BBB:
- move.w a2,(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
-
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BAL
-
- move.w a2,104*20(a3)
-
- .BAL:
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- bra.s .BAB
-
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BAB
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
-
- .BAB:
- move.w a2,(a3)
-
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- tstend:
- CACHE_FREEZE_ON d2
- rts
-
- *****************************
-
- SixBelowS:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BBL
-
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
-
- .BBL:
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- bra.s .BBB
-
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BBB
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
-
- .BBB:
- move.w a2,(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
-
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BAL
-
- move.w a2,104*24(a3)
- move.w a2,104*20(a3)
- .BAL:
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- bra.s .BAB
-
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BAB
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
-
- .BAB:
- move.w a2,(a3)
-
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
-
- SevenBelowS:
- moveq #0,d0
- dbra d7,.BumpAcross
-
- .BumpBefore:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpBeforeHigh
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BBL
-
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
- .BBL:
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- bra.s .BBB
-
- .BumpBeforeHigh:
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BBB
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
-
- .BBB:
- move.w a2,(a3)
- addq #4,a3
- add.w a4,d3
- addx.l d6,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- bra.s .Bumppast1
-
- .BumpAcross:
- and.w d1,d5
- move.b (a0,d5.w*4),d0
- blt.s .BumpAcrossHigh
-
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BAL
-
- move.w a2,104*28(a3)
- move.w a2,104*24(a3)
-
- .BAL:
- move.w a2,104*20(a3)
- move.w a2,104*16(a3)
- move.w a2,104*12(a3)
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
- bra.s .BAB
-
- .BumpAcrossHigh:
- move.w (a1,d0.w*2),a2
- lsr.b #1,d0
- bcc.s .BAB
- move.w a2,104*8(a3)
- move.w a2,104*4(a3)
-
- .BAB:
- move.w a2,(a3)
-
- addq #4,a3
- add.w a4,d3
- addx.l d2,d5
- dbcs d7,.BumpAcross
- dbcc d7,.BumpBefore
- bcc.s .Bumppast1
- add.w #256,d5
- .Bumppast1:
-
- move.w d4,d7
- bne.s .notdoneyet
- rts
- .notdoneyet:
-
- cmp.w #32,d7
- ble.s .notoowide
- move.w #32,d7
- .notoowide
- sub.w d7,d4
- addq #4,a3
-
- dbra d7,.BumpAcross
- CACHE_FREEZE_ON d2
- rts
-
-
- smooththefloor:
- move.l #14*128,d0
- divs dst,d0
- subq.w #1,d0
- blt ordinary
- ; beq.s OneAbove
- subq.w #2,d0
- ; blt TwoAbove
- ; beq ThreeAbove
- subq.w #2,d0
- ; blt FourAbove
- ; beq FiveAbove
- subq.w #2,d0
- ; blt SixAbove
- ; beq SevenAbove
-
- ; bra EightAbove
-
- moveq #0,d0
- rts
-